package com.css.project.oa.cash.service;

import com.css.framework.aspectj.lang.annotation.DataScope;
import com.css.project.oa.cash.domain.ProCash;
import com.css.project.oa.cash.domain.ProCashItem;
import com.css.project.oa.fileInfo.domain.SysFileInfo;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public interface IProCashService {

    public List<ProCash> getCashList(ProCash proCash);

    /**
     * 获取打印主信息
     * @param scId
     * @return
     */
    public ProCash selectProCashPrintInfoById(Long id);

    /**
     * 报销明细
     * @param cashId
     * @return
     */
    public List<ProCashItem> getProCashItemList(Long cashId);

    /**
     * 现金报销列表
     * @param cashId
     * @return
     */
    public List<ProCashItem> getProCashItemMainList(Long cashId);

    /**
        * @Author 陈泽恩
        * @Description  新增或者修改报销单
        * @Date 16:32 20-05-12,0012
        * @Param [proCash, itemsJson]
        * @return int
    **/
    public Long addUpdateCash(ProCash proCash, String itemsJson);


    public Long addUpdateCashYD(ProCash proCash);

    /**
        * @Author 陈泽恩
        * @Description  查询报销单及报销单明细
        * @Date 14:12 20-05-18,0018
        * @Param [cashId]
        * @return java.util.Map<java.lang.String,java.lang.Object>
    **/
    public Map<String, Object> getCashById(Long cashId);

    /**
        * @Author 陈泽恩
        * @Description  删除报销单
        * @Date 15:41 20-05-18,0018
        * @Param [cashIds]
        * @return int
    **/
    public int deleteCash(Long[] cashIds);

    public List<SysFileInfo> getFileInfoByCash(Long cashId);
    public List<SysFileInfo> getFileInfoByCashAndFileType(Long cashId,String fileType);
    /**
     * 现金报销单上报
     *
     * @param ids
     * @return 结果
     */
    public int reportCashByIds(Long[] ids);
    /**
     * 现金报销单调整修改上报
     *
     * @param ids
     * @return 结果
     */
    public int reportCashAgainByIds(Long[] ids);
    /**
     * 
    * @Title: updateProCashItemForDinner 
    * @Description: 保存餐费明细
    * @param @param proCashItem
    * @param @return    设定文件 
    * @author ShiChao 
    * @return int    返回类型 
    * @throws
     */
    public int updateProCashItemForDinner(ProCashItem proCashItem);

}
